package com.easylinkin.linkappapi.meterbilling.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.easylinkin.linkappapi.meterbilling.entity.BaseBilling;
import com.easylinkin.linkappapi.meterbilling.entity.BaseBillingHistory;
import com.easylinkin.linkappapi.meterbilling.entity.ext.BaseBillingExt;

import java.util.List;

/**
 * class info :计费标准功能接口
 *
 * @author liuqihang
 * @date 2021/7/12 16:12
 */
public interface BillingStandardService {

    /**
     * 保存计费标准数据
     * @param baseBilling
     */
    String saveBillingStandardData(BaseBilling baseBilling);

    /**
     * 修改计费标准数据
     * @param baseBilling
     */
    String updateBillingStandardData(BaseBilling baseBilling);

    /**
     * 删除计费标准数据
     * @param baseBilling
     */
    String deleteBillingStandardData(BaseBilling baseBilling);

    /**
     * 获取计费标准数据列表
     * @param baseBilling
     * @return
     */
    IPage<BaseBillingExt> getBaseBillingList(Page page, BaseBilling baseBilling);


    List<BaseBillingExt> getBaseBillingByMeterType(BaseBilling baseBilling);

    /**
     * 根据主键ID获取计费标准信息
     * @param id
     * @return
     */
    BaseBilling getBillingStandardInfoById(Integer id);

    /**
     * 根据计费标准ID获取历史标准数据
     * @param baseBillingId
     * @return
     */
    List<BaseBillingHistory> getBaseBillingHistoryInfoById(Integer baseBillingId);


    BaseBillingHistory getNewBaseBillingInfoById(Integer baseBillingId);
}
